Warning: mkdir(): No space left on device in /var/www/tg-me/post.php on line 37
Warning: file_put_contents(aCache/aDaily/post/defront/--): Failed to open stream: No such file or directory in /var/www/tg-me/post.php on line 50 Defront — про фронтенд-разработку и не только | Telegram Webview: defront/1113 -
Стэфан Баумгартнер рассказал, в каких случаях могут возникать неожиданные пересечения типов, и что с ними делать — "TypeScript: Unexpected intersections".
Неожиданное пересечение типов возникает при обновлении свойств объектов, если в качестве ключа используется переменная с объединением типов. В этом случае для ключа TypeScript будет использовать "наибольший общий делитель" в виде пересечения типов. В примере ниже таким "делителем" будет пересечение string & number, то есть тип never, из-за чего возникнет ошибка типизации:
interface Person { age: number; name: string; }
function updatePersonByKey( person: Person, key: keyof Person, value: Person[keyof Person] ) { // тут будет ошибка типизации, так как // key превратится в пересечение типов `string & number` person[key] = value; }
Также неожиданное пересечение типов может возникнуть после деструктуризации объекта, так как деструктурированные свойства теряют связь с оригинальным типом.
Полезная статья. Рекомендую почитать всем, кто использует TypeScript.
Стэфан Баумгартнер рассказал, в каких случаях могут возникать неожиданные пересечения типов, и что с ними делать — "TypeScript: Unexpected intersections".
Неожиданное пересечение типов возникает при обновлении свойств объектов, если в качестве ключа используется переменная с объединением типов. В этом случае для ключа TypeScript будет использовать "наибольший общий делитель" в виде пересечения типов. В примере ниже таким "делителем" будет пересечение string & number, то есть тип never, из-за чего возникнет ошибка типизации:
interface Person { age: number; name: string; }
function updatePersonByKey( person: Person, key: keyof Person, value: Person[keyof Person] ) { // тут будет ошибка типизации, так как // key превратится в пересечение типов `string & number` person[key] = value; }
Также неожиданное пересечение типов может возникнуть после деструктуризации объекта, так как деструктурированные свойства теряют связь с оригинальным типом.
Полезная статья. Рекомендую почитать всем, кто использует TypeScript.
Telegram is a free app and runs on donations. According to a blog on the telegram: We believe in fast and secure messaging that is also 100% free. Pavel Durov, who shares our vision, supplied Telegram with a generous donation, so we have quite enough money for the time being. If Telegram runs out, we will introduce non-essential paid options to support the infrastructure and finance developer salaries. But making profits will never be an end-goal for Telegram.
Traders also expressed uncertainty about the situation with China Evergrande, as the indebted property company has not provided clarification about a key interest payment.In economic news, the Commerce Department reported an unexpected increase in U.S. new home sales in August.Crude oil prices climbed Friday and front-month WTI oil futures contracts saw gains for a fifth straight week amid tighter supplies. West Texas Intermediate Crude oil futures for November rose $0.68 or 0.9 percent at 73.98 a barrel. WTI Crude futures gained 2.8 percent for the week.
Defront при поддержке Зарплата ру — про фронтенд разработку и не только from pl